<TITLE>access</TITLE>
<body bgcolor="#ffffcc">
<hr>
<pre>



<h3>ACCESS(2)           Linux Programmer's Manual           ACCESS(2)
</h3>

<h3>NAME
</h3>       access - check user's permissions for a file

<h3>SYNOPSIS
</h3>       #include &lt;unistd.h&gt;

       int access(const char *pathname, int mode);

<h3>DESCRIPTION
</h3>       access  checks  whether  the  process  would be allowed to
       read, write or test for existence of the  file  (or  other
       file system object) whose name is pathname.

       mode  is  a  mask consisting of one or more of R_OK, W_OK,
       X_OK and F_OK.

       R_OK, W_OK and X_OK request testing for  reading,  writing
       and  executing  the  file,  respectively.   F_OK  requests
       checking whether merely testing for the existence  of  the
       file  would be allowed (this depends on the permissions of
       the directories in the path to the file, as given in path-
       name.)

       The  check  is  done  with the process's real uid and gid,
       rather than with the effective ids as is done  when  actu-
       ally  attempting  an  operation.  This is to allow set-UID
       programs to easily determine the invoking  user's  author-
       ity.

       Only  access  bits  are checked, not the file type or con-
       tents.   Therefore,  if  a  directory  is  found   to   be
       "writable," it probably means that files can be created in
       the directory, and not that the directory can  be  written
       as a file.  Similarly, a DOS file may be found to be "exe-
       cutable," but the execve(2) call will still fail.

<h3>RETURN VALUE
</h3>       On success, zero is returned.  On error, -1  is  returned,
       and errno is set appropriately.

<h3>ERRORS
</h3>       EACCES  The  requested  access  would be denied, either to
               the file itself or one of the directories in path-
               name.

       EFAULT  pathname  points  outside  your accessible address
               space.

       EINVAL  mode was incorrectly specified.

       ENAMETOOLONG
               pathname is too long.

       ENOENT  A directory component in pathname would have  been



<h3>Linux 1.1.46              21 August 1994                        1
</h3>




<h3>ACCESS(2)           Linux Programmer's Manual           ACCESS(2)
</h3>

               accessible  but  does  not exist or was a dangling
               symbolic link.

       ENOTDIR A component used as a  directory  in  pathname  is
               not, in fact, a directory.

       ENOMEM  Insufficient kernel memory was available.

       ELOOP   pathname  contains  a reference to a circular sym-
               bolic link, i.e., a  symbolic  link  containing  a
               reference to itself.

<h3>CONFORMING TO
</h3>       SVID, AT&T, POSIX, X/OPEN, BSD 4.3

</pre>
<hr>
<h3>SEE ALSO
</h3><p>
<a href=stat.htm>stat</a>, 
<a href=open.htm>open</a>, 
<a href=chmod.htm>chmod</a>, 
<a href=chown.htm>chown</a>, 
<a href=setuid.htm>setuid</a>, 
<pre>







































<h3>Linux 1.1.46              21 August 1994                        2
</h3>

</pre>
<P>
<hr>
<p>
<center>
<table border=2 width=80%>
<tr align=center>
<td width=25%>
<a href=../cref.html>Top</a>
</td><td width=25%>
<a href=../master_index.html>Master Index</a>
</td><td width=25%>
<a href=../SYNTAX/keywords.html>Keywords</a>
</td><td width=25%>
<a href=../FUNCTIONS/funcref.htm>Functions</a>
</td>
</tr>
</table>
</center>
<p>
<hr>

This manual page was brought to you by <i>mjl_man V-2.0</i>
